package myjava.se_allora;

public class Root {

   public static void main(String[] args) {

      /* nei condizionali puoi confrontare solo operandi
         che sono dello stesso datatype */

      /* inoltre l'espressione deve ritornare un boolean! */

      String foo = "hello";
      int answer = 42;
      boolean bool = true;
      String noFuckingWay;

      if (foo == "hello") {
         System.out.print("uguali");
      }

      /* Il prossimo snippet da errore!
         Nemmeno devi provare a confrontare entita' intensionalmente diverse
      if (foo == answer) {
         System.out.print("uguali");
      }

      if (bool == null) {
         System.out.print("uguali");
      }

      */

      /* Anche il prossimo snippet sbotta! Infatti non si puo' usare
         una variabile con un operatore se la variaible non e' prima inizializzata (initialized)!
         In questo caso la variabile e' solo definita (dafined)
      if (noFuckingWay.equals("yo")) {
         System.out.print("uguali");
      } */

      // caso un po' strano ma sensato
      boolean myB;

      if (myB = true) {
         /* in altri linguaggi l'assegnamento restituisce true
            NON IN JAVA!
            pero' puoi fare un assegnamento booleno senza problemi di compilazione
            e come se la variabile fosse inizializzata e usata in un colpo solo
          */
      }

      // ecco la prova che l'assegnamento di per se non e' uno statement valido
      /*
      String myS;

      if (myS = "noway") {

      } */
   }
}